from django.shortcuts import render
from .models import *

def indexView(request):
    # 热搜歌曲
    search_song = Dynamic.objects.select_related('song').order_by('-dynamic_search').all()[:8]
    # 音乐分类
    label_list = Label.objects.all()
    # 热门歌曲
    play_hot_song = Dynamic.objects.select_related('song').order_by('-dynamic_plays').all()[:10]
    # 新歌推荐
    daily_recommendation = Song.objects.order_by('-song_release').all()[:3]
    # 热门搜索、热门下载
    search_ranking = search_song[:6]
    down_ranking = Dynamic.objects.select_related('song').order_by('-dynamic_down').all()[ :6]
    all_ranking = [search_ranking, down_ranking]
    # locals()将所有所有局部变量的名称与值进行映射，返回一个字典
    return render(request, 'index.html', locals())

    #
    # 上述代码将首页的响应处理给视图函数indexView执行，并且将会首页的URL命名为index,URL的命名可以在模板上使用django内
    # 置的url标签生成对应的URL地址。输入函数一共执行了5次数据查询，说明如下：
    #    search_song：通过歌曲的搜索次数进行降序查询，由django内置的select_related方法实行模型Song和Dynamic的数据
    #    查询。
    #    label_list：查询模型Label的所有数据，数据显示在首页轮播图左侧的音乐分类中
    #    play_hot_song：由select_related方法实现模型Song和Dynamic的数据查询，查询结果以歌曲的播放次数降序排序，
    #    数据显示在首页轮播图的右侧的热门歌曲中
    #    daily_remmendation：以歌曲的发行时间的先后排序查询前三首歌曲的信息，数据显示在首页的新歌推荐中。
    #    all_ranking：由热门搜索和热门下载组成的列表，热门搜索的数据来自与search_song;热门下载用于获取下载次数排在
    #    前6行的歌曲信息。
